<?php
class Ordemservico extends AppModel {
	var $name = 'Ordemservico';
	
	var $validate = array('defeito' => array('notempty' => array('rule' => array('notempty'),
																 'message' => 'Campo de preenchimento obrigatório.',
																 'last' => true),
											 'maxLength' => array('rule' => array('maxLength', 250), 
																  'message' => 'Insira no máximo 250 caracteres.')),
						  'tipo' => array('notempty' => array('rule' => array('notempty'),
															  'message' => 'Campo de preenchimento obrigatório.')),
						  'entrega' => array('notempty' => array('rule' => array('notempty'),
															  'message' => 'Campo de preenchimento obrigatório.')),
						  'entregadata' => array('notempty' => array('rule' => array('notempty'),
																 'message' => 'Campo de preenchimento obrigatório.')));
	// As associações abaixo foram criadas com todas as chaves possíveis, então é possível remover as que não são necessárias

	var $belongsTo = array(
		'Produto' => array(
			'className' => 'Produto',
			'foreignKey' => 'produto_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		),
		'Pessoa' => array(
			'className' => 'Pessoa',
			'foreignKey' => 'pessoa_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		)
	);

	var $hasMany = array(
		'Pagamento' => array(
			'className' => 'Pagamento',
			'foreignKey' => 'ordemservico_id',
			'dependent' => false,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'exclusive' => '',
			'finderQuery' => '',
			'counterQuery' => ''
		),
		'Laudotecnico' => array(
			'className' => 'Laudotecnico',
			'foreignKey' => 'ordemservico_id',
			'dependent' => false,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'exclusive' => '',
			'finderQuery' => '',
			'counterQuery' => ''
		),
		'Entrega' => array(
			'className' => 'Entrega',
			'foreignKey' => 'ordemservico_id',
			'dependent' => false,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'exclusive' => '',
			'finderQuery' => '',
			'counterQuery' => ''
		)
	);


	var $hasAndBelongsToMany = array(
		'Peca' => array(
			'className' => 'Peca',
			'joinTable' => 'ordemservicos_pecas',
			'foreignKey' => 'ordemservico_id',
			'associationForeignKey' => 'peca_id',
			'unique' => true,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'finderQuery' => '',
			'deleteQuery' => '',
			'insertQuery' => ''
		),
		'Servico' => array(
			'className' => 'Servico',
			'joinTable' => 'ordemservicos_servicos',
			'foreignKey' => 'ordemservico_id',
			'associationForeignKey' => 'servico_id',
			'unique' => true,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'finderQuery' => '',
			'deleteQuery' => '',
			'insertQuery' => ''
		),
		'Status' => array(
			'className' => 'Status',
			'joinTable' => 'ordemservicos_status',
			'foreignKey' => 'ordemservico_id',
			'associationForeignKey' => 'status_id',
			'unique' => true,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'finderQuery' => '',
			'deleteQuery' => '',
			'insertQuery' => ''
		)
	);
	
	function contarOSPorDiaTipo($condicao = null) {
		return $this->query("select TO_CHAR(created,'YYYY-MM-DD') AS DT, count(id), tipo from ordemservicos ".$condicao." group by  DT, tipo order by dt asc");
	}
	
	function contarOSPorDiaFuncionario($condicao = null) {
		return $this->query("select TO_CHAR(created,'YYYY-MM-DD') AS DT, count(id), funcionario from ordemservicos_status ".$condicao." group by  DT, funcionario order by dt asc");
	}
	
}
?>